/*
 *
 * 名称：程序入口
 * 功能：选择运行模式，进入程序入口
 * 作者：清河张
 * 时间：2025.05.11
 *
 */

#include "qmdj/xzqmwin.h"
#include "qmdj/qmdjwin.h"
#include "base/utils.h"
#include <QMessageBox>
#include <QCalendarWidget>
#include <QApplication>
#include <QWidget>
#include <QFileInfo>
#include <QFile>
#include <QDir>
#include <QTimer>
#include <QPainter>
#include <QPixmap>

using namespace QMDJ;

static int g_run_mode = 1;// 1 normal, 2 debug, 3 test


int test_main(int , char *[])
{
    // QString s;
    // XIANG4 x4 = XIANG_T::SHAOYIN;
    // s = x4.fw().name();


    // WUXING5 wx;
    // ZHI12 z0,z1;

    // for(int i = 0; i < ZHI12::size(); ++i  )
    // {
    //     z0 = i;
    //     wx = z0.he6(&z1);
    //     s = QString(z0.name()) + " 合 " + z1.name() + " 为 " + wx.name();
    // }

    // ZHI12::DIEDAI_T diedai = ZHI12::diedai();
    // for( const auto & z : diedai)
    // {
    //     s = z.name();
    // }

    // int m,n;
    // m = XUNHUAN(8,5);
    // n = XUNHUAN(-23,10);


    // for(int i = 1; i < 9; ++i)
    // {
    //     GUA8 xg = i;
    //     for (int j = 1; j < 9; ++j)
    //     {
    //         GUA8 sg = j;
    //         GUA64 g = GUA64::fu(sg,xg);
    //         s += sg.wname();
    //         s += xg.wname();
    //         s += g.name();
    //         continue;
    //     }
    // }


    return 0;
}

int debug_main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QDir::setCurrent(a.applicationDirPath());

    if(!LIFA::init("rili.cfg"))
    {
        QMessageBox::critical(nullptr, "严重错误", "日历加载失败");
        return a.exec();
    }

    WYLQWIN w;
    w.show();
    w.display(QDateTime::currentDateTime());

    return a.exec();
}

int nomal_main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QDir::setCurrent(a.applicationDirPath());

    if(!LIFA::init("rili.cfg"))
    {
        QMessageBox::critical(nullptr, "严重错误", "日历加载失败");
        return a.exec();
    }

    XZQMWIN mw;
    mw.show();

    return a.exec();
}


int main(int argc, char *argv[])
{
    int ret = 0;

    if(1 == g_run_mode)
        ret = nomal_main(argc, argv);
    else if (2 == g_run_mode)
        ret = debug_main(argc, argv);
    else if (3 == g_run_mode)
        ret = test_main(argc, argv);

    return ret;
}

